package ruletaPage;

import jugador.Jugador;

import org.apache.wicket.Page;
import org.apache.wicket.Session;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow.WindowClosedCallback;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.pages.RedirectPage;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;

import apuestasWindow.ApuestaPanel;


public class TableroPage extends WebPage implements WindowClosedCallback {

	@SuppressWarnings("serial")
	
	public TableroPage(Jugador j) {
		ApuestasEnMesaPanel apuestasEnMesa = new ApuestasEnMesaPanel("panelApuestas");
		apuestasEnMesa.setOutputMarkupId(true);
		GirarRuletaPanel girarRuleta= new GirarRuletaPanel("panelGirar");
		add(apuestasEnMesa);
		add(girarRuleta);
		Label fichasJugador = new Label("fichas", new PropertyModel<Integer>(j, "fichas"));
		fichasJugador.setOutputMarkupId(true);
		add(fichasJugador);
		add(new Label("jugadorOnSite",j.getNombre()));	
		crearModalWindow(j);
		JugadoresEnMesaPanel jugadoresEnMesaPanel = new JugadoresEnMesaPanel("panelJugadores");
		jugadoresEnMesaPanel.setOutputMarkupId(true);
		add(jugadoresEnMesaPanel);
		Session.get().setAttribute("jugador", j);
	}

	private void crearModalWindow(Jugador j) {
		final ModalWindow dialog = new ModalWindow("dialog");
		
		dialog.setInitialHeight(200);
		dialog.setInitialWidth(500);
		dialog.setTitle("Realiza tu apuesta por favor");
		dialog.setContent(new ApuestaPanel(dialog.getContentId(), this, j));
		AjaxLink link = new AjaxLink("link") {
			@Override
			public void onClick(AjaxRequestTarget target) {
				dialog.show(target);
			}
		};
		dialog.setWindowClosedCallback(this);
		link.add(dialog);
		add(link);
	}

	@Override
	public void onClose(AjaxRequestTarget target) {
		target.add(this.get("panelApuestas") , this.get("panelJugadores"), this.get("fichas"));
	}
}
